package fr.labri.macchiato.core.model;

import fr.labri.macchiato.core.model.utils.Address;
import fr.labri.macchiato.core.technical.Identifiable;

/**
 * A location is a branch of a business entity that is ideally close to where
 * the user of Macchiato lives.
 * 
 * 
 * @author Michelle AVOMO
 * 
 */
public class Location implements Identifiable<String> {

	private String name;
	private Address addresse;
	private String geo;

	// TODO: implement hasOpeningHoursSpecification

	/**
	 * Default constructor
	 */
	public Location() {

	}

	/**
	 * a branch of a business entity with a name, an address
	 * 
	 * @param name
	 * @param address
	 */
	public Location(String name, Address address) {
		this.name = name;
		this.addresse = address;

	}

	/******************************************* GETTERS AND SETTERS *************************************************************/

	/**
	 * @return the name
	 */
	public String getName() {
		return name;
	}

	/**
	 * @param name
	 *            the name to set
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * @return the addresse
	 */
	public Address getAddresse() {
		return addresse;
	}

	/**
	 * @param addresse
	 *            the addresse to set
	 */
	public void setAddresse(Address addresse) {
		this.addresse = addresse;
	}

	/**
	 * @return the geo
	 */
	public String getGeo() {
		return geo;
	}

	/**
	 * @param geo
	 *            the geo to set
	 */
	public void setGeo(String geo) {
		this.geo = geo;
	}	

	/******************************************* UNIMPLEMENTED METHODS *************************************************************/

	public String getId() {
		return getName();
	}

}
